]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ScreenShield: don't reset the lock screen animation if it's already happening
authorGiovanni Campagna <gcampagna@src.gnome.org>
Sat, 29 Dec 2012 14:25:03 +0000 (15:25 +0100)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 30 Dec 2012 00:39:24 +0000 (01:39 +0100)
When you click Suspend from the user menu, the following things happen:
- we lock the screen internally by calling Main.screenShield.lock() and waiting
  for lock-screen-shown
- logind emits a Lock signal, which causes us to lock again
- gnome-settings-daemon notices PrepareForSleep, and calls org.gnome.ScreenSaver.Lock,
  just in case, so we lock once more
This means that, if you're lucky, you can see the curtain fall down multiple times,
as each .lock() call resets the animation.

https://bugzilla.gnome.org/show_bug.cgi?id=690858

js/ui/screenShield.js

index 3ee24ebbc533fe9abf02e46229e7ce47fc98f97a..81d9655ee997b9f870acd8e6d57451480d72be81 100644 (file)
@@ -760,6 +760,10 @@ const ScreenShield = new Lang.Class({
     },
 
     _resetLockScreen: function(animateLockScreen, animateLockDialog) {
+        if (this._lockScreenState == MessageTray.State.SHOWING ||
+            this._lockScreenState == MessageTray.State.SHOWN)
+            return;
+
         this._ensureLockScreen();
         this._lockDialogGroup.scale_x = 1;
         this._lockDialogGroup.scale_y = 1;